/******************************************************************************
 * Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.webservice;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.code.common.systeminit.EnviromentInfo;

/**
 * WebService工具类
 * 
 * @author 郑重
 * @since 1.0
 * @version 2011-5-3 郑重
 */
public final class WebServiceClientUtil {
    
    /**
     * 构造函数
     */
    private WebServiceClientUtil() {
    }
    
    /**
     * ESB服务器地址
     */
    private static final String ESB_ADDRESS = "esbAddress";
    
    /**
     * 创建客户端
     * 
     * @param <T> 服务类型
     * @param address 地址
     * @param t 服务类
     * @return 客户端对象
     */
    public static <T> T create(String address, Class<T> t) {
        JaxWsProxyFactoryBean objJaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
        objJaxWsProxyFactoryBean.setServiceClass(t);
        objJaxWsProxyFactoryBean.setAddress(address);
        return (T) objJaxWsProxyFactoryBean.create();
    }
    
    /**
     * 创建客户端
     * 
     * @param <T> 服务类型
     * @param address 地址
     * @param t 服务类
     * @return 客户端对象
     */
    public static <T> T createFromESB(String address, Class<T> t) {
        String strESBAddress = EnviromentInfo.getGlobalConfig(ESB_ADDRESS);
        JaxWsProxyFactoryBean objJaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
        objJaxWsProxyFactoryBean.setServiceClass(t);
        objJaxWsProxyFactoryBean.setAddress(strESBAddress + address);
        return (T) objJaxWsProxyFactoryBean.create();
    }
}